package com.tang.imgupload.service.impl;

import com.tang.imgupload.Entity.ImgInfo;
import com.tang.imgupload.mapper.IImgMapper;
import com.tang.imgupload.service.IImgService;
import com.tang.imgupload.util.RedisUtil;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class ImgService implements IImgService {
	@Resource
	IImgMapper imgMapper;
	@Resource
	RedisUtil redisUtil;


	@Override public List<String> getImgs(String username){
		return imgMapper.getImgs(username);
	}

	/**
	 * 从数据库根据用户名查找图像
	 *
	 * @param username 用户名
	 * @return
	 */
	@Override
	public List<ImgInfo> selectImgAll(String username){
		return imgMapper.selectImgAll(username);
	}

	/**
	 * 插入一张图像记录到数据库
	 *
	 * @param imgInfo 图像文件信息
	 * @return
	 */

	@Override
	public int saveImg(ImgInfo imgInfo){
		return imgMapper.saveImg(imgInfo);
	}

	/**
	 * 获得一张图像
	 *
	 * @param id 图像记录id
	 * @return
	 */
	@Override public ImgInfo getImg(long id){
		return imgMapper.getImg(id);
	}

	/**
	 * @param username 用户名
	 * @param o        图像信息
	 * @param time     缓存时间
	 * @return
	 */
	public boolean cacheImg(String username, Object o, int time){
		return redisUtil.lSet(username, o, time);
	}

	/**
	 * 返回redis list所有元素
	 *
	 * @param username 用户名
	 * @return
	 */
	public List<Object> getCacheImg(String username){
		return redisUtil.rangeList(username, 0, Integer.MAX_VALUE);
	}

}
